package com.bestow.basic.service.impl;

import java.util.List;

import com.bestow.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.bestow.basic.mapper.HlsSysFileMapper;
import com.bestow.basic.domain.HlsSysFile;
import com.bestow.basic.service.IHlsSysFileService;

/**
 * 关联附件Service业务层处理
 *
 * @author liliu
 * @date 2022-10-05
 */
@Service
public class HlsSysFileServiceImpl extends ServiceImpl<HlsSysFileMapper, HlsSysFile> implements IHlsSysFileService {
    @Autowired
    private HlsSysFileMapper hlsSysFileMapper;

    /**
     * 查询关联附件
     *
     * @param fileId 关联附件主键
     * @return 关联附件
     */
    @Override
    public HlsSysFile selectHlsSysFileByFileId(Long fileId) {
        return hlsSysFileMapper.selectHlsSysFileByFileId(fileId);
    }

    /**
     * 查询关联附件列表
     *
     * @param hlsSysFile 关联附件
     * @return 关联附件
     */
    @Override
    public List<HlsSysFile> selectHlsSysFileList(HlsSysFile hlsSysFile) {
        return hlsSysFileMapper.selectHlsSysFileList(hlsSysFile);
    }

    /**
     * 新增关联附件
     *
     * @param hlsSysFile 关联附件
     * @return 结果
     */
    @Override
    public int insertHlsSysFile(HlsSysFile hlsSysFile) {
        hlsSysFile.setCreateTime(DateUtils.getNowDate());
        return hlsSysFileMapper.insertHlsSysFile(hlsSysFile);
    }

    /**
     * 修改关联附件
     *
     * @param hlsSysFile 关联附件
     * @return 结果
     */
    @Override
    public int updateHlsSysFile(HlsSysFile hlsSysFile) {
        hlsSysFile.setUpdateTime(DateUtils.getNowDate());
        return hlsSysFileMapper.updateHlsSysFile(hlsSysFile);
    }

    /**
     * 批量删除关联附件
     *
     * @param fileIds 需要删除的关联附件主键
     * @return 结果
     */
    @Override
    public int deleteHlsSysFileByFileIds(Long[] fileIds) {
        return hlsSysFileMapper.deleteHlsSysFileByFileIds(fileIds);
    }

    /**
     * 删除关联附件信息
     *
     * @param fileId 关联附件主键
     * @return 结果
     */
    @Override
    public int deleteHlsSysFileByFileId(Long fileId) {
        return hlsSysFileMapper.deleteHlsSysFileByFileId(fileId);
    }

    /**
     * 查询关联附件列表通过来源
     *
     * @param sourceType 来源类型
     * @param sourceKey  来源类型key
     * @return 关联附件集合
     */
    public List<HlsSysFile> queryFilesByTypeAndKey(String sourceType, String sourceKey) {
        return this.hlsSysFileMapper.queryfiles(sourceType, sourceKey);
    }
}
